#include <cstdio> // 标准输入头文件
#include <vector>
#include <algorithm>

using namespace std;

void initVector(vector<vector<int>>* arr) {
}

int	main(int argc, char **argv)
{

  // 声明一个二维的 vector
  vector<vector<int>> arr;

  vector<int> d; //定义一个一维的数组;

  int i, j, k, n, number;

  // 获取键盘输入
  scanf("%d", &n);

  /*可以这样实现对vector二维的初始化，得到的是n行n列的矩阵*/


  for( i = 0; i < n; i++ ){
    for (j = 0; j < n; j++)
    {
      scanf("%d", &number);
      d.push_back(number);
    }
    sort( d.begin(), d.end() ); //pai xu xuyao头文件algorithm
    arr.push_back(d);
    //d.clear();        //清空一维的数组
    d.resize(0);
  }

  /*遍历输出*/
  if( arr.empty() )
      printf("0\n");
  else{
    for (i = 0; i < arr.size(); i++)
    {
      for (j = 0; j < arr[0].size(); j++)
      {
        printf("%d ", arr[i][j]);
      }
      printf("\n");
    }
  }
  // system("pause");
  return 0;
}
